.TITLE VIDSUB .IDENT /01/ ; ; Copyright (c) 1995-1999 by Mentec, Inc., U.S.A. ; All rights reserved ; ; THIS SOFTWARE IS FURNISHED UNDER LICENSE AND MAY ONLY BE USED ; OR COPIED ACCORDANCE WITH THE TERMS OF SUCH LICENSE. ; ; VERSION 01 ; ; T. LEKAS 7-FEB-82 ; ; MODIFIED BY: ; .MCALL DCBDF$ DCBDF$ ; ;+ ; EXEC SUBROUTINES FOR THE USE OF THE VIDEO FIRMWARE TASK ; WHILE IT IS MAPPED TO THE EXEC. ;- ; .IF DF D$$C11 ; ;+ ; N$DRIN - NOTIFY THE TERMINAL DRIVER THAT THERE IS INPUT FOR IT ; ; INPUTS: ; NONE ; ; OUTPUTS: ; THE TERMINAL DRIVER CT INPUT ROUTINE IS MAPPED AND CALLED ; ; REGISTERS MODIFIED: ; NONE ;- ; .IIF DF,K$$DAS,.ERROR ;THIS MUST BE A NON I/D SYSTEM ; THIS CODE ALSO ASSUMES THAT THE TTDRV IS LOADABLE ; NOTE: ; ; WHEN WE FIGURE OUT WHAT REALLY NEEDS TO BE SAVED THIS ; CAN BE CLEANED UP AND PROBABLY GENERERALIZED. ; .ENABL LSB N$DRIN::JSR R5,SAVER ;SAVE THE REGISTERS MOV @#KINAR5,-(SP) ;SAVE APR 5 MOV @#KINAR6,-(SP) ;SAVE APR 6 MOV #.CTDCB,R0 ;GET THE TTDRV DCB ADDRESS MOV D.PCB(R0),R1 ;GET THE DRIVERS PCB ADDRESS MOV P.REL(R1),@#KINAR5 ;MAP KERNEL INSTRUCTION APR5 TO DRIVER MOV D.DSP(R0),R0 ;GET ADDRESS OF DRIVER DISPATCH TABLE CALL @D.VTIN(R0) ;CALL DRIVER CT INPUT ROUTINE BR 10$ ;CLEANUP AND EXIT ; ;+ ; N$DROU - NOTIFY THE TERMINAL DRIVER OF OUTPUT COMPLETION ; ; INPUTS: ; NONE ; ; OUTPUTS: ; THE TERMINAL DRIVER CT OUTPUT COMPLETION ROUTINE IS MAPPED AND CALLED ; ; REGISTERS MODIFIED: ; NONE ;- ; N$DROU::JSR R5,SAVER ;SAVE THE REGISTERS MOV @#KINAR5,-(SP) ;SAVE APR 5 MOV @#KINAR6,-(SP) ;SAVE APR 6 MOV #.CTDCB,R0 ;GET THE TTDRV DCB ADDRESS MOV D.PCB(R0),R1 ;GET THE DRIVERS PCB ADDRESS MOV P.REL(R1),@#KINAR5 ;MAP KERNEL INSTRUCTION APR5 TO DRIVER MOV D.DSP(R0),R0 ;GET ADDRESS OF DRIVER DISPATCH TABLE CALL @D.VTOU(R0) ;CALL DRIVER CT INPUT ROUTINE 10$: MOV (SP)+,@#KINAR6 ;RESTORE APR 6 MOV (SP)+,@#KINAR5 ;RESTORE APR 5 ; SET THE PRIORITY TO ZERO IF IT ISN'T ALREADY THERE NOW ; CHECK TO SEE IF THIS IS REALLY NEEDED MTPS #0 ; RETURN ;AND EXIT ; ; SAVER - SAVE REGISTERS ; ; THIS ROUTINE IS A CO-ROUTINE THAT SAVES ; AND RESTORES REGISTERS R0 THRU R5. ; SAVER: MOV R0,-(SP) ;SAVE R0 MOV R1,-(SP) ;SAVE R1 MOV R2,-(SP) ;SAVE R2 MOV R3,-(SP) ;SAVE R3 MOV R4,-(SP) ;SAVE R4 MOV R5,-(SP) ;SET RETURN ADDRESS MOV 14(SP),R5 ;RESTORE R5 CALL @(SP)+ ;CALL THE CALLER MOV (SP)+,R4 ;RESTORE R4 MOV (SP)+,R3 ;RESTORE R3 MOV (SP)+,R2 ;RESTORE R2 MOV (SP)+,R1 ;RESTORE R1 MOV (SP)+,R0 ;RESTORE R0 MOV (SP)+,R5 ;RESTORE R5 RETURN ;RETURN TO ORIGINAL CALLER .ENDC ;D$$C11 .END